#include <iostream>
using namespace std;

/*
【题目227】在【题目226】的基础上修改程序，使之实现运行时的多态。
*/

class B
{
public:
    virtual void vf()
    {
        cout << "B::vf()" << endl;
    }
};

class D : public B
{
public:
    void vf()
    {
        cout << "D::vf()" << endl;
    }
};

void show_vf(B &b)
{
    b.vf();
}

int main()
{
    B b, *pb = &b;
    D d, *pd = &d;

    pb->vf();
    pd->vf();
    b.vf();
    d.vf();

    show_vf(b);
    show_vf(d);

    return 0;
}